#ifndef CPROJECTILE_H
#define CPROJECTILE_H

#include "Vector3D.h"

#define ARCANE_BOLT			1
#define IGNIS				2
#define VOCATE				3
#define DEFAULT_LIFETIME	2.0f

class cProjectile
{
	public:
		//Constructor
		cProjectile(Vector3D position = Vector3D(), int type = 0, bool bIsAlive = false);

		//Destructor
		~cProjectile();
		
		//Provide an update to the information inside the
		//projectile class
		void	updateProjectile(float dt);

		//Return the type of the projectile
		int		getType() { return m_type; }
		void	setType(int type) { m_type = type; }

		void	setSpeed(float speed) { m_speed = speed; }

	private:
		//Holds the information pertaining to the projectile movement
		Vector3D	m_position;
		Vector3D	m_velocity;
		Vector3D	m_acceleration;
		float		m_speed;

		//Holds the information pertaining to the projectile type
		int			m_type;			//For the demo there are two different
									//types: Arcane and Fire

		//Controls the projectile life
		float		m_projectileLife; 
		bool		m_bIsAlive;
};
#endif